package org.example; import java.net.MalformedURLException; import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; import org.exoplatform.container.StandaloneContainer; import org.exoplatform.services.jcr.RepositoryService; import org.exoplatform.services.jcr.config.RepositoryConfigurationException; import org.exoplatform.services.jcr.core.CredentialsImpl; import org.exoplatform.services.jcr.impl.core.RepositoryImpl; import org.exoplatform.services.jcr.impl.core.SessionImpl; public class ExoJcrEx01 { public static void main(String[] args) throws Exception { RepositoryImpl repository = setup(); // Add some nodes and properties { CredentialsImpl credentials = new CredentialsImpl("root", "exo".toCharArray()); SessionImpl session = (SessionImpl) repository.login(credentials, "production"); Node rootNode = session.getRootNode(); // clean up before test if (rootNode.hasNode("training")) { rootNode.getNode("training").remove(); } Node training = rootNode.addNode("training", "nt:unstructured"); Node day1 = training.addNode("Day-1"); day1.setProperty("name", "JCR concepts, architecture and benefits"); Node day2 = training.addNode("Day-2"); day2.setProperty("name", "JCR for developers"); session.save(); session.logout(); } // Read nodes and properties { CredentialsImpl credentials = new CredentialsImpl("root", "exo".toCharArray()); SessionImpl session = (SessionImpl) repository.login(credentials, "production"); Node rootNode = session.getRootNode(); Node training = rootNode.getNode("training"); NodeIterator nodeIterator = training.getNodes(); while (nodeIterator.hasNext()) { Node node = (Node) nodeIterator.next(); System.out.println(node.getName() + ":" + node.getProperty("name").getString()); } session.logout(); } } private static RepositoryImpl setup() throws MalformedURLException, Exception, RepositoryException, RepositoryConfigurationException { System.setProperty( "java.security.auth.login.config", Thread.currentThread().getContextClassLoader() .getResource("jaas.conf").toString()); System.setProperty("org.exoplatform.services.log.Log", "org.apache.commons.logging.impl.SimpleLog"); System.setProperty("com.arjuna.ats.arjuna.objectstore.objectStoreDir", "./temp"); System.setProperty("ObjectStoreEnvironmentBean.objectStoreDir", "./temp"); System.out.println(ExoJcrEx01.class .getResource("/exo-configuration.xml")); StandaloneContainer.addConfigurationURL(ExoJcrEx01.class.getResource( "/exo-configuration.xml").toString()); StandaloneContainer container = StandaloneContainer.getInstance(); RepositoryService repositoryService = (RepositoryService) container .getComponentInstanceOfType(RepositoryService.class); RepositoryImpl repository = (RepositoryImpl) repositoryService .getDefaultRepository(); return repository; } }